package dapps.service.proj;

import java.util.List;

import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springside.modules.orm.Page;
import org.springside.modules.orm.PropertyFilter;
import org.springside.modules.orm.hibernate.EntityManager;
import org.springside.modules.utils.DateUtils;

import dapps.dao.proj.ProjDao;
import dapps.entity.proj.Proj;

@Service
// 默认将类中的所有函数纳入事务管理.
@Transactional
public class ProjManager extends EntityManager<Proj, Long> {
	@Autowired
	private ProjDao projDao;

	@Override
	protected ProjDao getEntityDao() {
		return projDao;
	}

	@Override
	public void delete(Long id) {
		projDao.delete(id);
	}
	
	public void delete(Proj proj) {
		projDao.delete(proj);
	}
	public void saveProj(Proj proj) {

		proj.setUpdateDate(DateUtils.getCurrentDateTime());
		save(proj);
	}

	/**
	 * 检查用户名是否唯一.
	 * 
	 * @return loginName在数据库中唯一或等于orgLoginName时返回true.
	 */
	@Transactional(readOnly = true)
	public boolean isLoginNameUnique(String loginName, String orgLoginName) {
		return projDao.isPropertyUnique("loginName", loginName, orgLoginName);
	}

	public Page<Proj> getProjsOrder(Page<Proj> page,
			List<PropertyFilter> filters, String[] alias) {

		return projDao.findByAliasFilters(page, filters, alias);

	}

	public boolean isSs(Proj entity) {
		return (StringUtils.isNotBlank(entity.getJys()) || StringUtils
				.isNotBlank(entity.getKy()))
				&& (StringUtils.isNotBlank(entity.getXz()) || StringUtils
						.isNotBlank(entity.getYdxk()))
				&& StringUtils.isNotBlank(entity.getYdys());
	}

	public boolean isCb(Proj entity) {
		return !(StringUtils.isNotBlank(entity.getJys())
				|| StringUtils.isNotBlank(entity.getKy())
				|| StringUtils.isNotBlank(entity.getXz())
				|| StringUtils.isNotBlank(entity.getYdxk()) || StringUtils
				.isNotBlank(entity.getYdys()));
	}


}
